#include "weather_api.h"
#include "http_get_request.h"
#include "esp_log.h"

static const char *TAG = "WEATHER_API";

esp_err_t fetch_weather_data(weather_data_t *weather_data) {
    esp_err_t ret = http_get_with_url(HTTP_GET_URL_ADDRESS, weather_data);
    if (ret != ESP_OK) {
        ESP_LOGE(TAG, "Failed to fetch weather data");
        return ret;
    }
    return ESP_OK;
}

void get_weather_data(void)
{
    // 获取天气数据
    weather_data_t *weather_data = http_weather_data_create();
    if (weather_data == NULL) {
        ESP_LOGE(TAG, "Failed to create weather data structure");
        return;
    }

    esp_err_t ret = fetch_weather_data(weather_data);
    if (ret != ESP_OK) {
        ESP_LOGE(TAG, "Failed to fetch weather data");
        http_weather_data_delete(weather_data);
        return;
    }

    // 打印天气数据
    ESP_LOGI(TAG, "Temperature: %.1f°C", weather_data->temp);
    ESP_LOGI(TAG, "Humidity: %d%%", weather_data->rh);
    ESP_LOGI(TAG, "Weather: %s", weather_data->text);
    ESP_LOGI(TAG, "Wind: %s", weather_data->wind_class);

    // 释放天气数据结构
    http_weather_data_delete(weather_data);
}
